The Agile Approach in an Undergraduate Software Engineering Course Project
نویسنده
چکیده
1 Thomas Reichlmayr, Software Engineering Department, Rochester Institute of Technology, Rochester, NY 14623, [email protected] Abstract The rise in popularity of agile software development methodologies such as Extreme Programming (XP), Crystal, DSDM and Feature-Driven Development has opened an opportunity for the software engineering education community. How can one capitalize on the strengths of agile development models while still appealing to established software engineering practices? The typical introductory software engineering course makes use of a team-based project to reinforce software process activities. The project normally runs for one academic term during which students are led through life-cycle activities using a modified waterfall approach to software development. While useful in teaching software engineering process concepts, this approach limits the team’s ability to utilize feedback from downstream process activities. It also limits the students’ opportunity to understand process improvement from their own experiences. The ability to respond to project change is also dampened by the fact that teams do not have the time or resources in this format to modify, or refactor the design of a project component let alone incorporate a new or modified customer requirement. Agile methodologies promote an evolutionary approach to development using short incremental release cycles. We report on the experiences of conducting a team project in an introductory software engineering course using agile development techniques at the Rochester Institute of Technology. Teams have the opportunity to experience multiple iterations of the software engineering life cycle and evolve a product design that allows for discoveries made during implementation and through the introduction of changing customer requirements. The project integrates the concept of testdriven development. This agile technique addresses testing early in the development process and reinforces the value of unit testing. The incorporation of agile techniques is not only useful for students in an introductory course, but may also be applied to upper division software engineering courses.
منابع مشابه
Incorporation of Agile Development Methodology into a Capstone Software Engineering Project
This paper describes the author's experience in transitioning an undergraduate capstone software engineering project course from a traditional "waterfall" format to a modern agile development methodology. The agile approach replaces the sequential, and documentation-intensive, product development steps of the waterfall model--requirements analysis, system design, implementation, testing, and de...
متن کاملBridging the Academia-Industry Gap in Software Engineering: A Client-Oriented Open Source Software Projects Course
Too often, computer science programs offer a software engineering course that emphasizes concepts, principles, and practical techniques, but fails to engage students in real-world software experiences. The authors have developed an approach to teaching undergraduate software engineering courses that integrates client-oriented project development and open source development practice. They call t...
متن کاملTeaching Agile Software Engineering Using Problem-Based Learning
Many studies have reported the utilization of Problem-Based Learning (PBL) in teaching Software Engineering courses. However, these studies have different views of the effectiveness of PBL. This paper presents the design of an Advanced Software Engineering course for undergraduate Software Engineering students that uses PBL to teach them Agile software development methodsparticularly Scrum. The...
متن کاملAn Empirical Analysis of Task Allocation in Scrum-based Agile Programming
Agile Software Development (ASD) methodology has become widely used in the industry. Understanding the challenges facing software engineering students is important to designing effective training methods to equip students with proper skills required for effectively using the ASD techniques. Existing empirical research mostly focused on eXtreme Programming (XP)based ASD methodologies. There is a...
متن کاملA Case Study On Teaching Agile Software Development Methods
This paper presents and discusses some interesting findings from teaching Agile methods and modelling in a typical university at an undergraduate level software engineering course. The students who took part in this study had been exposed to a few hour lectures on Agile methods and other traditional methods like the RUP (rational unified process). A simple modelling questionnaire was presented ...
متن کامل